/**
 * Copyright 2011 HNB. All rights reserved.
 * HNB PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package my.hnb.android.view.karaoke;

import java.io.File;

import my.hnb.android.common.AppInfo;
import my.hnb.android.constant.Constants;
import my.hnb.android.model.SQLUtils;
import my.hnb.android.ultils.AppUltils;
import my.hnb.android.ultils.Encryption;
import my.hnb.android.ultils.download.DownloadFile;
import my.hnb.android.ultils.download.ExternalStorage;
import my.hnb.android.view.base.BaseActivity;
import my.hnb.songnhac.R;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.TextView;

/**
 * gioi thieu thong tin ung dung
 * 
 * @author BANGHN
 */
public class About extends BaseActivity {
	TextView tvInfo;
	String versionApp = "1.0.0";
	WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_about);
		ivMenu.setVisibility(View.GONE);
		this.setTitleText("Giới thiệu");
		tvInfo = (TextView) findViewById(R.id.tvInfo);
		webView = (WebView) findViewById(R.id.webView);

		int numSong = SQLUtils.getInstance().getNumberOfSong();
		numSong = (numSong / 100) * 100;

		try {
			versionApp = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
		} catch (NameNotFoundException e) {
			e.printStackTrace();
		}

		StringBuffer strBf = new StringBuffer();
		// strBf.append("- Danh sách bài hát Karaoke Musiccore Vol " +
		// AppInfo.getInstance().getMusicVolOption().get(1).value + ", ");
		// strBf.append("do Sở Văn Hóa Thể Thao và Du Lịch TP Hồ Chí Minh cấp, theo giấy phép số: 311/QĐ-PH-SVHTTDL.\r\n");
		// strBf.append("- Số lượng bài hát phong phú, đa dạng và phố biến nhất hiện nay với hơn "
		// + numSong + " bài hát ");
		// strBf.append("Tân nhạc, Cổ Nhạc, Cách mạng, Thiếu nhi, Remix.. được yêu thích. Bài hát được phối âm, phối khí chuyên nghiệp, ");
		// strBf.append("âm thanh sống động và trung thực. Danh sách bài hát được cập nhật thường xuyên.\r\n");
		// strBf.append("- Đầu máy Karaoke Musiccore được thiết kế bởi ARIRANG TECH CORPORATION - VN\n\n");

		strBf.append("Chương trình danh sách karaoke MusicCore được sản xuất bởi Công ty SÓNG NHẠC. Version " + versionApp + " - Vol "
				+ AppInfo.getInstance().getMusicVolOption().get(1).value);
		tvInfo.setText(strBf.toString());

		if (AppUltils.checkNetworkAccess()) {
			new DownloadAboutTask().execute(Constants.URL_ABOUT + new Encryption().decrypt(AppInfo.K_LINK, Constants.K_ABOUT));
		}

		File fileDir = ExternalStorage.getAboutPath();
		if (ExternalStorage.isFileExistsInDirectory(fileDir, "About.html")) {
			loadFileAbout();
		} else {
			webView.loadUrl("file:///android_asset/About.html");
		}

	}

	private void loadFileAbout() {
		try {
			File fileDir = ExternalStorage.getAboutPath();
			webView.loadUrl("file://" + fileDir.getAbsolutePath() + "/About.html");
		} catch (Throwable e) {
			e.printStackTrace();
		}
	}

	// /////////////////////////////////////////////////////////////////////////
	// DOWNLOAD ABOUT
	private class DownloadAboutTask extends AsyncTask<String, Void, Exception> {
		@Override
		protected void onPreExecute() {
		}

		@Override
		protected Exception doInBackground(String... params) {
			String url = (String) params[0];
			try {
				downloadAdFile(url);
			} catch (Exception e) {
				e.printStackTrace();
				return e;
			}
			return null;
		}

		@Override
		protected void onPostExecute(Exception result) {
			if (result != null) {
			} else {
				loadFileAbout();
			}
		}
	}

	private void downloadAdFile(String url) {
		File fileDir = ExternalStorage.getAboutPath();
		// File path to store .zip file before unzipping
		File file = new File(fileDir.getPath() + "/About.html");
		// File outputDir = ExternalStorage.getAdPath();

		try {
			DownloadFile.downloadWithURLConnection(url, file, fileDir);
		} finally {
			//file.delete();
		}
	}

}
